/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function (nums) {
  if (nums.length === 0) return 0;

  let currentMax = nums[0];
  let globalMax = nums[0];

  for (let i = 1; i < nums.length; i++) {
    // 更新到当前位置的最大子数组和
    currentMax = Math.max(nums[i], currentMax + nums[i]);
    // 更新全局最大值
    globalMax = Math.max(globalMax, currentMax);
  }

  return globalMax;
};
